/********************************************
 *  顺序栈
 * Created by zlj on 2024/6/26.
********************************************/

#ifndef DATA_STRUCTURE_SEQSTACK_H
#define DATA_STRUCTURE_SEQSTACK_H

#include "option_config.h"

/**
 * 初始化栈
 * @param s
 */
void InitSeqStack(SeqStack *s);

/**
 * 增加栈的容量空间
 * @param s
 * @return
 */
bool SeqStack_Inc(SeqStack *s);

/**
 * 判断是否栈已满
 * @param s
 * @return
 */
bool SeqStack_IsFull(SeqStack *s);

/**
 * 判断栈空
 * @param s
 * @return
 */
bool SeqStack_IsEmpty(SeqStack *s);

/**
 * 入栈
 * @param s
 * @param x
 */
void SeqStack_Push(SeqStack *s,ElemType x);

/**
 * 出栈
 * @param s
 */
void SeqStack_Pop(SeqStack *s);

/**
 * 获取栈顶元素
 * @param s
 * @param v
 * @return
 */
bool SeqStack_GetTop(SeqStack *s,ElemType *v);

/**
 * 打印
 * @param s
 */
void SeqStack_Show(SeqStack *s);

/**
 * 元素个数
 * @param s
 * @return
 */
int SeqStack_Length(SeqStack *s);

/**
 * 清空栈
 * @param s
 */
void SeqStack_Clear(SeqStack *s);

/**
 * 销毁
 * @param s
 */
void SeqStack_Destory(SeqStack *s);



#endif //DATA_STRUCTURE_SEQSTACK_H
